using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;

namespace WindowsPhoneGame1.Shapes
{
    public abstract class Shape
    {
        public static float MARGIN { get { return 1e-10f; } }

        public abstract void SetBounds();
        public abstract RectangleF Bounds { get; protected set; }

        protected RectangleF bounds;
        protected ShapeType type;

        public ShapeType ShapeType { get; set; }
        
        public Shape()
        {
            ShapeType = new StaticShape();
        }

        public bool IsDynamic()
        {
            return ShapeType.IsDynamic();
        }

        public bool IsStatic()
        {
            return ShapeType.IsStatic();
        }

        public abstract ContainmentType contains(Shape shape);
    }
}
